package com.ctshk.rpc.starvip.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @BelongsProject: ctshk-cloud
 * @BelongsPackage: com.ctshk.rpc.starvip.req
 * @Author: hef
 * @CreateTime: 2021-04-23 16:08
 * @Description: 描述
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "TransactionIntegralCustomReq", description = "C端积分交易请求对象")
public class TransactionIntegralCommonReq implements Serializable {


    @ApiModelProperty(value = "集团会员编号")
    @NotNull(message = "memberId不能为空")
    private String memberId;

    @ApiModelProperty(value = "订单id")
    @NotNull(message = "订单id不能为空")
    private Long orderId;

    @ApiModelProperty(value = "订单号")
    @NotBlank(message = "订单编号不能为空")
    private String orderNumber;

    @ApiModelProperty(value = "业务类型")
    @NotBlank(message = "业务类型不能为空")
    private Integer systemBusinessType;

    @ApiModelProperty(value = "使用积分数")
    private BigDecimal usePoints;

    @ApiModelProperty(value = "应收金额")
    private BigDecimal receivableAmount;

    @ApiModelProperty(value = "付款币种")
    private String currency;

    @ApiModelProperty(value = "交易类型,1.增加积分,2.扣除积分,取枚举类TransactionType")
    @Min(value = 1,message = "交易类型,1.增加积分,2.扣除积分")
    @Max(value = 2,message = "交易类型,1.增加积分,2.扣除积分")
    private Integer transactionType;

    @ApiModelProperty(value = "订单来源,枚举类OrderSource")
    @NotNull(message = "订单来源不能为空")
    private Integer orderSource;

    @ApiModelProperty(value = "C端用户id")
    private Long userId;

    @ApiModelProperty(value = "定级积分,Y是N否")
    private String qualifyingFlag;

    @ApiModelProperty(value = "是否定级交易,Y是N否")
    private String ctsQualifyTxnFlag;
}
